package com.lanchetech.user.service;


import com.lanchetech.bean.request.FreezeAmountReq;
import com.lanchetech.bean.request.ListByTimeReq;
import com.lanchetech.bean.request.WithdrawReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.response.WithdrawResp;
import com.lanchetech.bean.vo.*;
import com.lanchetech.entity.AlipayAccount;
import com.lanchetech.entity.BankAccount;
import com.lanchetech.entity.User;
import com.lanchetech.entity.Withdraw;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FundService {

    ResultData<BasePageResp<WithdrawResp>> getWithdrawPage(User user, WithdrawReq req);

    BaseResp editAlipayAccount(User user, AlipayAccount alipayAccount);

    ResultData<AlipayAccount> getAlipayAccount(User user);

    BaseResp editBankAccount(User user, BankAccount bankAccount);

    ResultData<BankAccount> getBankAccount(User user);

    BaseResp deleteBankAccount(User user, Long id);

    ResultData<List<BankAccount>> getBankAccountList(User user);

    BaseResp withdrawToAccount(User user, WithdrawVO req, HttpServletRequest httpServletRequest);

    ResultData<CardFlowUsedSum> getCardFlowUsedSum(User user);

    ResultData<BasePageResp<FreezeAmountVO>> getFreezeAmountPage(FreezeAmountReq req);
}